The present invention relates to the field of computer network servers. More particularly, the present invention relates to a method for recovering cluster consistency following failover of a backend server.
In a server cluster consisting of a backend server and a plurality of front-end servers, front-end servers can become temporarily disconnected from the backend server. Later when a disconnected server reconnects to the backend server, resource ownership information maintained by the reconnecting server might conflict with resource ownership information maintained on other servers of the server cluster. Additionally, in situations of a backend server failover, resource ownership information maintained in a newly active backend server may conflict with resource ownership information maintained by the respective servers of the server cluster.
What is needed is a technique maintaining server cluster consistency.
The present invention provides a technique for maintaining server cluster consistency. One aspect of the present invention provides a method for recovery of server cluster consistency. According to this aspect of the invention, when a front-end server detects that it has reconnected to a plurality of servers or in the situation of a backend server failover, each front-end server from the plurality of servers sends resource ownership information to the backend server. The resource ownership information relates to ownership information for each respective resource owned by the server. The backend server verifies the ownership information for contention with static resources and dynamic resources owned by other servers and sends back verification information to the server. The backend server maintains resource ownership information for all the servers in the cluster that sent resources for verification. Based on the received verification information, the server maintains ownership information at the server for each respective resource indicated in the verification information to be owned by the server. The server discards ownership of resources that were verified by the backend server to be not owned by the server.
According to another aspect of the invention, resource ownership information is received at a backend server from a server of a plurality of servers. The received resource ownership information contains resource ownership information for the server. The received resource ownership information is compared to resource ownership information stored at the backend server. The backend server resolves any contention for a resource and sends verification information to the server. The verification information contains information verifying ownership for each resource indicated by the backend server that is owned by the server.